Video applications have expanded in recent years for use with camcorders, televisions, and computers. As a result, use of panoramic video has expanded as well. One common use of panoramic video is to represent travel along a path. The path may be a street, a building corridor, or some path in abstract space.
Representation of travel along a one way path is straightforward. A video sequence displaying travel along the path is provided to a user, thereby allowing a user to “proceed” down the path. A more difficult problem arises relates to intersections as displayed in video. The problem arises in finding an efficient basis in which to allow a user who is proceeding down a path to view travel through different paths of an intersection as displayed in video. Capturing video in every combination of **possible paths available at an intersection is impractical due to data storage, data processing, and the time and resources required to capture the video. Another possible solution is to provide a single video sequence along each direction of an intersection (thus, two video sequences for an intersection of two streets). When a change in direction is required at an intersection, the video sequence displayed for a user may change from the video sequence in which the entry to the intersection is displayed to the video sequence displaying the desired exit path from the intersection. Several problems arise with this method of providing video at an intersection.
The problem may be broken into two parts. The first part is detecting when an intersection in the panoramic video appears. An intersection is an image of an identical location that occurs at different times and from different directions in the video. For example, an intersection of two streets, one oriented north-south and one oriented east-west, may be captured in panoramic video from an east-west direction as well as a north-south direction. A panoramic video sequence traveling through the intersection along each direction will capture the same location at different times and from different directions.
One method for detecting an intersection is to go through all the video frames of a sequence and label the intersections manually. From a practical point of view, this process would become extremely tedious and time consuming for large scale applications, such as labeling the intersections on a city street map. Selecting the intersections by hand would also be less accurate then automatic methods, as this method would rely on the human eye for choosing between images that may have been taken only 1/30th of a second apart for video frames displayed at 30 Hz. Further, adding additional information to the video frames to be analyzed by a processor would require more processing power.
The second part of the problem is to determine how to provide a smooth transition between the separate panoramic video sequences. A smooth transition is desirable to make the change from one video sequence to another video sequence appear as a single video sequence. One solution would be to label each video sequence with orientation data at the corresponding intersection frames to indicate the angle the video sequence is captured relative to the intersection. As with adding intersection data, the addition of intersection orientation data would become extremely tedious and time consuming for large scale applications, such as labeling the intersections on a city street map. Further, adding additional information to the video frames to be analyzed by a processor would require more processing power.
What is needed is a system for detecting the intersection of an intersection between two separate panoramic video sequences captured while traveling through the intersection from different directions. The system should determine where the intersection is and the orientation of the images depicting the intersection.